﻿using System;
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;

namespace Myotragus.Data.Emit
{
	public interface IDynamicAssembly : IService, IDisposable
	{
		string MainNamespace { get; }

		AssemblyBuilder Assembly { get; }

		ModuleBuilder Module { get; }

		IDynamicType DefineType(string typeName, TypeAttributes attributes, Type baseType, IEnumerable<Type> interfaces);
	}
}